1 | var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; |
1 | var cb_decode = function(cccc) { |
要点
String.replace
方法
使用 String.replace
方法可以对于字符串中某些字符作替换操作:1 | String.replace(searchStr | Regexp, replacedStr | replaceFn); |
1 | // 将非base64 的字符串清除 |
1 | // 替换正则表达式匹配的字符串, 在替换过程中应用 cb_decode 方法 |
正则表达式相关
- 在正则中使用限定符
{}
可以限定字符的长度范围\S{1,4}
: 匹配字符长度为 1 - 4 的字符串1
2
3
4
5// 截取字符串按长度为 4 分段截取
let strArr = [];
str.replace(/\S{1,4}/g, (mStr) =>{
strArr.push(mStr);
});replace
方法接受函数参数如下图: - 正则中的描述符
[]
中使用^
表示不匹配1
2// 正则表示不匹配base64 字符的字符
String(a).replace(/[^A-Za-z0-9\+\/]/g, '')
按位操作符相关
在 js 中, 包含下面几种操作符号, 它们用来在js 中操作二进制数据的位数各种操作符号的作用如下图: 示例:对于十进制数 10 和 20:1 | let s1 = 10; |
- 使用
|
来增加二进制字符串使用|
可以用来存储信息,比如我们对于一组数据定义其存放位置, 将这组二进制数存入到一段二进制值中:1
2
3
4
5let s1 = 10;
let s2 = 20;
let s3 = 30;
let str = s1 | s2 << 8 | s3 << 16;
// s1: 1010, s2: 10100, s3: 11110 str: 111100001010000001010 - 使用
&
来保留相应位数如:我们想要保留8位二进制的高四位:let str = s & 0xf0
0xf0
: 111100001
2
3
4
5let s5 = 0xf0;
let s2 = 20;
let s4 = s2 & s5;
console.log(s5.toString(2), s2.toString(2), s4.toString(2));
// 11110000 10100 10000
进制间的转换
在 js 中进制之间的相互转化方法如下:十进制转二进制:numObj.toString(radix)
1 | let num = 2; |
parseInt(string, radix)
The parseInt()
function parses a string argument and returns an integer of the specified radix (the base in mathematical numeral systems).
1 | parseInt('10', 2); |